Spmd Execution of Programs with Pointer-based Dynamic Data Structures
نویسنده
چکیده
This paper discusses an approach for supporting SPMD (single-program, multiple-data) execution of programs with pointer-based data structures on distributed-memory machines. Through a combination of language design and new compilation techniques, static and dynamic implicit parallelism present in sequential programs based upon pointer-based data structures is exploited. Language support is provided for constructing and manipulating local as well as distributed data structures. The compiler translates the program for execution in SPMD mode in which each processor executes that part of the program which operates on the elements of distributed data structures local to the processor. Therefore the parallelism implicit in a sequential program is exploited. A novel approach for implementing pointers is presented in this paper which is based upon the generation of names for the nodes in a data structure. The name based strategy enables the dynamic distribution of data structures among the processors as well as the traversal of distributed data structures without inter-processor communication.
منابع مشابه
To appear in ACM Transactions on Programming Languages and Systems
Compiling for distributed memory machines has been a very active research area in recent years. Much of this work has concentrated on programs that use arrays as their primary data structures. To date, little work has been done to address the problem of supporting programs that use pointerbased dynamic data structures. The techniques developed for supporting SPMD execution of array-based progra...
متن کاملSupport for Distributed Dynamic Data Structures in C + +
Traditionally, applications executed on distributed memory architectures in single-program multiple-data (SPMD) mode use distributed (multi-dimensional) data arrays. Good performance has been achieved by applying runtime techniques to such applications executing in a loosely synchronous manner. However, many applications utilize language constructs such as pointers to synthesize dynamic complex...
متن کاملA FORTRAN Compiling Method for Dataflow Machines and Its Prototype Compiler for the Parallel Processing System -Harray-
A Hierarchical Parallelizing Compiler for VLIW/MIMD Machines p. 49 Dynamic Dependence Analysis: A Novel Method for Data Dependence Evaluation p. 64 On the Feasibility of Dynamic Partitioning of Pointer Structures p. 82 Compiler Analysis for Irregular Problems in Fortran D p. 97 Data Ensembles in Orca C p. 112 Compositional C++: Compositional Parallel Programming p. 124 Data Parallelism and Lind...
متن کاملCHAOS + + : A Runtime
Traditionally, applications executed on distributed memory architectures in single-program multiple-data (SPMD) mode use distributed (multi-dimensional) data arrays. Good performance has been achieved by applying runtime techniques to such applications executing in a loosely synchronous manner. However, many applications utilize language constructs such as pointers to synthesize dynamic complex...
متن کاملSupporting SPMD Execution for Dynamic Data Structures
In this paper, we address the problem of supporting SPMD execution of programs that use recursively-deened dynamic data structures on distributed memory machines. The techniques developed for supporting SPMD execution of array-based programs rely on the fact that arrays are statically deened and directly addressable. As a result, these techniques do not apply to recursive data structures, which...
متن کامل